﻿using System;
using System.ComponentModel;

namespace Rsdn.Scintilla
{
	partial class ScintillaEditor
	{
		/// <summary>
		/// Признак того, что документ модифицирован.
		/// </summary>
		/// <remarks>
		/// Актуально только в том случае, если был вызван метод <see cref="SetSavePoint"/>.
		/// </remarks>
		[Browsable(false)]
		public bool IsModified
		{
			get { return SendEditor(ScintillaCommand.SCI_GETMODIFY) == 1; }
		}

		/// <summary>
		/// Вызывается при изменении значения свойства IsModified.
		/// </summary>
		public event EventHandler IsModifiedChanged;

		/// <summary>
		/// Установить точку сохранения.
		/// </summary>
		/// <remarks>Операции Undo/Redo работают до последней установленной точки 
		/// сохранения</remarks>
		public void SetSavePoint()
		{
			SendEditor(ScintillaCommand.SCI_SETSAVEPOINT);
		}

		/// <summary>
		/// Вызывает событие <see cref="IsModifiedChanged"/>.
		/// </summary>
		protected virtual void OnIsModifiedChanged()
		{
			if (IsModifiedChanged != null)
				IsModifiedChanged(this, EventArgs.Empty);
		}
	}
}
